package com.zwan.oam_rtc.utils.messages;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;

/**
 * 消息结构interface，对应于C里的Struct
 * @author 叶建生
 */
public interface MsgStruct {
	// 返回字节数组
    byte[] getByteArray(ByteOrder order);
    // 返回ByteBuffer
    ByteBuffer getByteBuffer(ByteOrder order);
    void writeToBuffer(ByteBuffer bf);
    /**
     * 转换buffer为对象
     * @param bf
     */
    void readFromBuffer(ByteBuffer bf);

    // 解析字节数组
    void parse(byte[] message, int offset, ByteOrder order);
    // 解析字节数组
    void parse(byte[] message, ByteOrder order);
    // 获得当前结构的长度
    int getLength();
}
